package com.bitsemart;

import android.content.Context;
import android.content.Intent;
import android.os.*;
import android.provider.MediaStore;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.concurrent.ExecutionException;

/**
 * Created by Javier on 28/04/2015.
 */
public class Checkout extends ActionBarActivity {

    private EditText nombre;
    private EditText apellidos;
    private EditText pais;
    private EditText email;
    private BDLocal bdlocal;
    private TextView titulo;
    private Toolbar toolbar;
    private Intent i;
    private Toast toast;
    private BDHendrix bdhendrix;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //SETUP LAYOUT
        super.onCreate(savedInstanceState);
        setContentView(R.layout.checkout);
        //INICIALIZAMOS EL INTENT
        i = new Intent(this, MainActivity.class);
        //PREPARAMOS EL TOAST / POP UP
        Context context = getApplicationContext();
        CharSequence text = "Juegos comprados con exito";
        int duration = Toast.LENGTH_LONG;
        toast = Toast.makeText(context, text, duration);
        //ABRIR BDLOCAL
        bdlocal = new BDLocal(this);
        bdlocal.open();
        //SETUP ACTION BAR
        toolbar = (Toolbar) findViewById(R.id.checkout_action_bar);
        toolbar.setTitle("Bits-e-Mart");
        setSupportActionBar(toolbar);

        titulo = (TextView) findViewById(R.id.titulo_checkout);
        nombre = (EditText) findViewById(R.id.nombre_field);
        apellidos = (EditText) findViewById(R.id.apellidos_field);
        pais = (EditText) findViewById(R.id.pais_field);
        email = (EditText) findViewById(R.id.email_field);

        nombre.setHint("Nombre");
        apellidos.setHint("Apellidos");
        pais.setHint("Pais");
        email.setHint("Email");
        Bundle b = this.getIntent().getExtras();
        final String msg = b.getString("LISTAJUEGOS");
        Button comprar = (Button) findViewById(R.id.botonccheckout);
        comprar.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //TODO: Vaciar SQLite. Utilizar nombre y pais en el email.

                final GMailSender sender = new GMailSender("staemodoo@gmail.com", "nomeacuerdo1");
                new AsyncTask<Void, Void, Void>() {
                    @Override
                    public Void doInBackground(Void... arg) {

                        try {
                            sender.sendMail("Acabas de comprar en Bits-E-Mart!!!",
                                    "Acabas de compar los siguientes juegos en Bits-E-Mart:\n"+msg+
                                            "\n\n Gracias por tu confianza",
                                    "staemodoo@gmail.com",
                                    email.getText().toString());
                            String cabecera = "Sr./Sra. " + nombre.getText() + " " +
                                    apellidos.getText() +"acaba de comprar en Bits-E-Mart";
                            sender.sendMail(cabecera,
                                    cabecera + "\n" + msg,
                                    "staemodoo@gmail.com",
                                    "jmurillo93@gmail.com");
                            System.out.println("Mail sent");

                        } catch (Exception e) {
                            System.out.println("Error: " + e.getMessage());
                        }
                        return null;
                    }
                }.execute();
                toast.show();
                setResult(RESULT_OK);
                finish();

            }
        });

        ArrayList<Integer> listaVideojuegos = bdlocal.fetchAllVideojuegos();
        //SETUP BDHENDRIX
        bdhendrix = MainActivity.getBDHendrix();
        Videojuego v;
        for (Integer i: listaVideojuegos) {
            try {
                v = bdhendrix.obtenerJuego(i);
                bdhendrix.actualizarDescargas(v);
                bdlocal.deleteVideojuego(i);
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            }

        }

        Button volver = (Button) findViewById(R.id.volver_checkout);
        volver.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                setResult(RESULT_OK);
                finish();
            }
        });

        populateFields();
    }

    private void populateFields() {
        titulo.setText("Datos de la compra");
    }



}
